/**
 * @desc 格式化日期字符串
 * @param { Nubmer} - 时间戳
 * @returns { String } 格式化后的日期字符串
 */
export function formatDate(timestamp) {
	// 补全为13位
	let arrTimestamp = (timestamp + '').split('');
	for (let start = 0; start < 13; start++) {
		if (!arrTimestamp[start]) {
			arrTimestamp[start] = '0';
		}
	}
	timestamp = arrTimestamp.join('') * 1;
	let minute = 1000 * 60;
	let hour = minute * 60;
	let day = hour * 24;
	let month = day * 30;
	let now = new Date().getTime();
	let diffValue = now - timestamp;
	// 如果本地时间反而小于变量时间
	if (diffValue < 0) {
		return '不久前';
	}
	// 计算差异时间的量级
	let monthC = diffValue / month;
	let weekC = diffValue / (7 * day);
	let dayC = diffValue / day;
	let hourC = diffValue / hour;
	let minC = diffValue / minute;
	// 数值补0方法
	let zero = function(value) {
		if (value < 10) {
			return '0' + value;
		}
		return value;
	};
	// 使用
	if (monthC > 4) {
		// 超过1年，直接显示年月日
		return (function() {
			let date = new Date(timestamp);
			return date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日';
		})();
	} else if (monthC >= 1) {
		return parseInt(monthC) + '月前';
	} else if (weekC >= 1) {
		return parseInt(weekC) + '周前';
	} else if (dayC >= 1) {
		return parseInt(dayC) + '天前';
	} else if (hourC >= 1) {
		return parseInt(hourC) + '小时前';
	} else if (minC >= 1) {
		return parseInt(minC) + '分钟前';
	}
	return '刚刚';
}
